package com.macro.mall.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author：郎
 * @name：AccessLimit
 * @date：2024/3/16 14:38
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface AccessLimit {

    /**
     * 在seconds秒内
     *
     * @return
     */
    int seconds() default 5;

    /**
     * 只允许 times 次请求
     *
     * @return
     */
    int maxTimes() default 3;

    /**
     * 默认指数(当前默认是 0的2次方)
     *
     * @return
     */
    double exponent() default 2.0;

    /**
     * 默认底数
     *
     * @return
     */
    int defaultBaseSeconds() default 0;
}
